// @ts-nocheck

const animate = require('tailwindcss-animate');
const { iconsPlugin, getIconCollections } = require('@egoist/tailwindcss-icons');

/** @type {import('tailwindcss').Config} */
module.exports = {
  darkMode: ['class'],
  safelist: [
    'dark',
    // 背景色类
    'bg-primary',
    'bg-primary-hover',
    'bg-secondary',
    'bg-secondary-hover',
    'bg-accent',
    'bg-accent-hover',
    'bg-success',
    'bg-warning',
    'bg-error',
    'bg-info',
    'bg-muted',
    'bg-card',
    'bg-popover',
    'bg-background',
    'bg-surface',
    'bg-surface-variant',
    'bg-input-background',
    // 文本色类
    'text-primary',
    'text-primary-hover',
    'text-primary-foreground',
    'text-secondary',
    'text-secondary-hover',
    'text-secondary-foreground',
    'text-accent',
    'text-accent-hover',
    'text-accent-foreground',
    'text-success',
    'text-success-foreground',
    'text-warning',
    'text-warning-foreground',
    'text-error',
    'text-error-foreground',
    'text-info',
    'text-info-foreground',
    'text-muted',
    'text-muted-foreground',
    'text-card',
    'text-card-foreground',
    'text-popover',
    'text-popover-foreground',
    'text-foreground',
    'text-text-primary',
    'text-text-secondary',
    'text-text-muted',
    // 边框色类
    'border-primary',
    'border-primary-hover',
    'border-secondary',
    'border-secondary-hover',
    'border-accent',
    'border-accent-hover',
    'border-success',
    'border-warning',
    'border-error',
    'border-info',
    'border-muted',
    'border-card',
    'border-popover',
    'border-border',
    'border-border-variant',
    'border-input',
    'border-divider',
    // 环形色类
    'ring-primary',
    'ring-primary-hover',
    'ring-secondary',
    'ring-secondary-hover',
    'ring-accent',
    'ring-accent-hover',
    'ring-success',
    'ring-warning',
    'ring-error',
    'ring-info',
    'ring-ring',
    // hover状态
    'hover:bg-primary',
    'hover:bg-primary-hover',
    'hover:bg-secondary',
    'hover:bg-secondary-hover',
    'hover:bg-accent',
    'hover:bg-accent-hover',
    'hover:text-primary',
    'hover:text-primary-hover',
    'hover:text-secondary',
    'hover:text-secondary-hover',
    'hover:text-accent',
    'hover:text-accent-hover',
    'hover:text-foreground',
    'hover:border-primary',
    'hover:border-primary-hover',
    // focus状态
    'focus:ring-primary',
    'focus:ring-ring',
    'focus:border-primary',
    'focus:border-transparent',
    // 主题类
    'theme-blue',
    'theme-purple',
    'theme-green',
    'theme-red',
    'theme-orange',
    'theme-pink',
    'theme-cyan',
    'theme-indigo',
    'theme-emerald',
    'theme-rose'
  ],
  prefix: '',

  content: [
    './pages/**/*.{ts,tsx,vue}',
    './components/**/*.{ts,tsx,vue}',
    './app/**/*.{ts,tsx,vue}',
    './src/**/*.{ts,tsx,vue}',
    './index.html',
    './src/renderer/src/**/*.{vue,js,ts,jsx,tsx}'
  ],

  theme: {
    extend: {
      colors: {
        // 基础颜色
        background: 'hsl(var(--background))',
        foreground: 'hsl(var(--foreground))',

        // 表面颜色
        surface: 'hsl(var(--surface))',
        'surface-variant': 'hsl(var(--surface-variant))',

        // 文本颜色
        'text-primary': 'hsl(var(--text-primary))',
        'text-secondary': 'hsl(var(--text-secondary))',
        'text-muted': 'hsl(var(--text-muted))',

        // 边框
        border: 'hsl(var(--border))',
        'border-variant': 'hsl(var(--border-variant))',
        divider: 'hsl(var(--divider))',

        // 输入框
        input: 'hsl(var(--input))',
        'input-background': 'hsl(var(--input-background))',

        // 主色调
        primary: {
          DEFAULT: 'hsl(var(--primary))',
          foreground: 'hsl(var(--primary-foreground))',
          hover: 'hsl(var(--primary-hover))'
        },

        // 次要色调
        secondary: {
          DEFAULT: 'hsl(var(--secondary))',
          foreground: 'hsl(var(--secondary-foreground))',
          hover: 'hsl(var(--secondary-hover))'
        },

        // 强调色
        accent: {
          DEFAULT: 'hsl(var(--accent))',
          foreground: 'hsl(var(--accent-foreground))',
          hover: 'hsl(var(--accent-hover))'
        },

        // 状态颜色
        success: {
          DEFAULT: 'hsl(var(--success))',
          foreground: 'hsl(var(--success-foreground))'
        },
        warning: {
          DEFAULT: 'hsl(var(--warning))',
          foreground: 'hsl(var(--warning-foreground))'
        },
        error: {
          DEFAULT: 'hsl(var(--error))',
          foreground: 'hsl(var(--error-foreground))'
        },
        info: {
          DEFAULT: 'hsl(var(--info))',
          foreground: 'hsl(var(--info-foreground))'
        },

        // 其他
        muted: {
          DEFAULT: 'hsl(var(--muted))',
          foreground: 'hsl(var(--muted-foreground))'
        },
        popover: {
          DEFAULT: 'hsl(var(--popover))',
          foreground: 'hsl(var(--popover-foreground))'
        },
        card: {
          DEFAULT: 'hsl(var(--card))',
          foreground: 'hsl(var(--card-foreground))'
        },

        // 添加ring颜色支持
        ring: 'hsl(var(--ring))'
      },
      borderRadius: {
        lg: 'var(--radius)',
        md: 'calc(var(--radius) - 2px)',
        sm: 'calc(var(--radius) - 4px)'
      },
      transitionProperty: {
        theme: 'var(--transition-theme)'
      },
      animation: {
        'theme-transition': 'theme-transition 0.3s ease'
      }
    }
  },
  plugins: [
    animate,
    require('@tailwindcss/typography'),
    iconsPlugin({
      // Select the icon collections you want to use
      collections: getIconCollections(['mdi', 'svg-spinners'])
    })
  ]
};
